package org.seed.example.demoprovider;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Data
public class RawTradeDeliverPushRequest implements Serializable {

    /**
     * 店铺编号
     */
    private String shopNo;

    /**
     * 原始单号
     *
     * <p>是否必填: 是</p>
     */
    private String tid;

    /**
     * 子订单个数
     *
     * <p>是否必填: 是</p>
     */
    private Integer orderCount;

    /**
     * <p>
     * /**
     * 货品总数量
     *
     * <p>是否必填: 是</p>
     */
    private BigDecimal goodsCount;

    /**
     * 支付方式; 1:在线转帐,2:现金,3:银行转账,4:邮局汇款,5:预付款,6:刷卡,7:支付宝,8:微信支付
     *
     * <p>是否必填: 否</p>
     */
    private Integer payMethod = 7;

    /**
     * 下单时间
     *
     * <p>是否必填: 是</p>
     */
    private Date tradeTime;

    /**
     * 支付时间
     *
     * <p>是否必填: 否</p>
     */
    private String payTime;

    /**
     * 买家昵称/客户网名
     *
     * <p>是否必填: 是</p>
     */
    private String buyerNick;

    /**
     * 买家备注
     *
     * <p>是否必填: 否</p>
     */
    private String buyerMessage;

    /**
     * 收件人姓名
     *
     * <p>是否必填: 是</p>
     */
    private String receiverName;

    /**
     * 省市区
     *
     * <p>是否必填: 是</p>
     */
    private String receiverArea;

    /**
     * 地址
     *
     * <p>是否必填: 是</p>
     */
    private String receiverAddress;

    /**
     * 收件人手机
     *
     * <p>是否必填: 是</p>
     */
    private String receiverMobile;


    /**
     * 邮费
     *
     * <p>是否必填: 否</p>
     */
    private BigDecimal postAmount = new BigDecimal("0");


    /**
     * 优惠金额
     *
     * <p>是否必填: 否</p>
     */
    private BigDecimal discount = new BigDecimal("0");

    /**
     * 应收金额
     *
     * <p>是否必填: 是</p>
     */
    private BigDecimal receivable;

    /**
     * 发票类别; 0:不需要,1:普通发票,2:增值税发票
     *
     * <p>是否必填: 否</p>
     */
    private Integer invoiceType = 0;

    /**
     * 发票抬头
     *
     * <p>是否必填: 否</p>
     */
    private String invoiceTitle;

    /**
     * 发票内容
     *
     * <p>是否必填: 否</p>
     */
    private String invoiceContent;

    /**
     * 客服备注
     *
     * <p>是否必填: 否</p>
     */
    private String remark;

    /**
     * 客服备注标记; 标旗（1 红、2 黄、3 绿、4 蓝、5 紫 无则填0）
     * <p>是否必填: 否</p>
     */
    private Integer remarkFlag = 0;


    /**
     * 原始子单列表
     *
     * <p>是否必填: 是</p>
     */
    private List<RawTradeDeliverPushOrder> rawTradeOrderList;

    /**
     * 优惠信息
     *
     * <p>是否必填: 否</p>
     */
    private List<RawTradeDeliverPushDiscount> rawTradeDiscountList = new ArrayList<RawTradeDeliverPushDiscount>();


}
